/* 
    使用双向链表实现一个栈结构，时间复杂度和原始Stack实现相同，为O(1)，双向链表还可以用来创建队列和双端队列
*/
let { DoublyLinkedList } = require("./6_2.js");

class StackLinkedList extends DoublyLinkedList {
  constructor() {
    this.items = new DoublyLinkedList();
  }
  push(element) {
    this.items.push(element);
  }
  pop() {
    if (this.isEmpty()) {
      return undefined;
    }
    return this.items.removeAt(this.size() - 1);
  }
}
